<template>
  <div id="aCoursesList" class="bg-fa of">
    <!-- /课程详情 开始 -->
    <section class="container">
      <section class="path-wrap txtOf hLh30">
        <a href="#" title class="c-999 fsize14">首页</a>
        \
        <a href="#" title class="c-999 fsize14">{{courseWebVo.subjectLevelOne}}</a>
        \
        <span class="c-333 fsize14">{{courseWebVo.subjectLevelTwo}}</span>
      </section>
      <div>
        <article class="c-v-pic-wrap" style="height: 357px;">
          <section class="p-h-video-box" id="videoPlay">
            <img height="357px" :src="courseWebVo.cover" :alt="courseWebVo.title" class="dis c-v-pic">
          </section>
        </article>
        <aside class="c-attr-wrap">
          <section class="ml20 mr15">
            <h2 class="hLh30 txtOf mt15">
              <span class="c-fff fsize24">{{courseWebVo.title}}</span>
            </h2>
            <section class="c-attr-jg">
              <span class="c-fff">价格：</span>
              <b class="c-yellow" style="font-size:24px;">￥{{courseWebVo.price}}</b>
            </section>
            <section class="c-attr-mt c-attr-undis">
              <span class="c-fff fsize14">主讲： {{courseWebVo.teacherName}}&nbsp;&nbsp;&nbsp;</span>
            </section>
            <section class="c-attr-mt of">
              <span class="ml10 vam">
                <em class="icon18 scIcon"></em>
                <a class="c-fff vam" title="收藏" href="#" >收藏</a>
              </span>
            </section>

            <section  class="c-attr-mt">
              <a v-if="courseWebVo.price ==0" @click="createOrders()"  title="立即报名" class="comm-btn c-btn-3">立即报名</a>
              <a v-else @click="createOrders()" title="立即购买" class="comm-btn c-btn-3">立即购买</a>
            </section>
          </section>
        </aside>
        <aside class="thr-attr-box">
          <ol class="thr-attr-ol">
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">购买数</span>
                <br>
                <h6 class="c-fff f-fM mt10">{{courseWebVo.buyCount}}</h6>
              </aside>
            </li>
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">课时数</span>
                <br>
                <h6 class="c-fff f-fM mt10">{{courseWebVo.lessonNum}}</h6>
              </aside>
            </li>
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">浏览数</span>
                <br>
                <h6 class="c-fff f-fM mt10">{{courseWebVo.viewCount}}</h6>
              </aside>
            </li>
          </ol>
        </aside>
        <div class="clear"></div>
      </div>
      <!-- /课程封面介绍 -->
      <div class="mt20 c-infor-box"  >
        <article class="fl col-6">
          <section class="mr30">
            <div class="i-box">
              <div>
                <section id="c-i-tabTitle" class="c-infor-tabTitle c-tab-title">
                  <a name="c-i" class="current" title="课程详情">课程详情</a>
                </section>

              </div>


              <article class="ml10 mr10 pt20">
                <div>
                  <h6 class="c-i-content c-infor-title">
                    <span>课程介绍</span>
                  </h6>
                  <div class="course-txt-body-wrap">
                    <section class="course-txt-body">
                      <p v-html="courseWebVo.description">{{courseWebVo.description}}</p>
                    </section>
                  </div>
                </div>
                <div class="mt50 commentHtml">
                  <div>
                  <h6 class="c-infor-title" id="i-art-comment">
                    <span class="commentTitle">课程评论</span>
                  </h6>
                  <section class="lh-bj-list pr mt20 replyhtml">
                    <ul>
                      <li class="unBr">
                        <aside class="noter-pic">
                          <img width="50" height="50" class="picImg" src="~/assets/img/avatar-boy.gif">
                        </aside>
                        <div class="of">
                          <section class="n-reply-wrap">
                            <fieldset>
                  <textarea v-model="comment.content"
                            placeholder="输入您要评论的文字" id="commentContent"></textarea>
                            </fieldset>
                            <p class="of mt5 tar pl10 pr10">
                              <span class="fl "><tt class="c-red commentContentmeg" style="display: none;"></tt></span>
                              <input type="button"
                                     value="评论" class="lh-reply-btn" @click="addComment">
                            </p>
                          </section>
                        </div>
                      </li>
                    </ul>
                  </section>
                  <section >
                    <section class="question-list lh-bj-list pr">
                      <ul class="pr10">
                        <li v-for="(comment,index) in data.items" v-bind:key="index">
                          <aside class="noter-pic">
                            <img :src="comment.avatar" width="50" height="50" class="picImg">
                            <img width="50" height="50" class="picImg" >
                          </aside>
                          <div class="of">
                    <span >
                    <font class="fsize12 c-blue">
                      {{ comment.nickname }}</font>
                    <font class="fsize12 c-999 ml5">评论：</font>
                    <font class="fsize12 c-red "  style="float: right;padding: 2px;border: 1px solid #c2303066;border-radius: 3px;"
                          @click="delComment(comment.id)"
                          v-if="userinfo!=undefined &&  userinfo.id ==comment.memberId " >删除</font>

                    </span>

                          </div>
                          <div class="noter-txt mt5">
                            <p>{{ comment.content }}</p>
                          </div>
                          <div class="of mt5">
                            <span class="fr"><font class="fsize12 c-999 ml5">{{comment.eduCreate}}</font></span>
                          </div>
                        </li>

                      </ul>
                    </section>
                  </section>
                    <!-- 公共分页 开始 -->
                    <div class="paging" v-if="data.total>0">
                      <!-- undisable这个class是否存在，取决于数据属性hasPrevious -->
                      <a
                        :class="{undisable: !data.hasPrevious}"
                        href="#"
                        title="首页"
                        @click.prevent="gotoPage(1)">首</a>
                      <a
                        :class="{undisable: !data.hasPrevious}"
                        href="#"
                        title="前一页"
                        @click.prevent="gotoPage(data.current-1)">&lt;</a>
                      <a
                        v-for="page in data.pages"
                        :key="page"
                        :class="{current: data.current == page, undisable: data.current == page}"
                        :title="'第'+page+'页'"
                        href="#"
                        @click.prevent="gotoPage(page)">{{ page }}</a>
                      <a
                        :class="{undisable: !data.hasNext}"
                        href="#"
                        title="后一页"
                        @click.prevent="gotoPage(data.current+1)">&gt;</a>
                      <a
                        :class="{undisable: !data.hasNext}"
                        href="#"
                        title="末页"
                        @click.prevent="gotoPage(data.pages)">末</a>
                      <div class="clear"/>
                    </div>
                    <!-- 公共分页 结束 -->
                </div>
                </div>

              </article>
            </div>
          </section>
        </article>
        <aside class="fl col-4"  >
          <div class="i-box">
            <div>
              <section class="c-infor-tabTitle c-tab-title">
                <a title href="javascript:void(0)">主讲讲师</a>
              </section>
              <section class="stud-act-list">

                <ul style="height: auto;">
                  <li>
                    <div class="u-face">
                      <a href="#">
                        <img :src="courseWebVo.avatar" width="50" height="50" alt>
                      </a>
                    </div>
                    <section class="hLh30 txtOf">
                      <a class="c-333 fsize16 fl" href="#">{{courseWebVo.teacherName}}</a>
                    </section>
                    <section class="hLh20 txtOf">
                      <span class="c-999">{{courseWebVo.intro}}</span>
                    </section>
                  </li>
                </ul>
              </section>
              <!-- /课程介绍 -->
              <div class="mt50">
                <h6 class="c-g-content c-infor-title">
                  <span>课程大纲</span>
                </h6>
                <section class="mt20">
                  <div class="lh-menu-wrap">
                    <menu id="lh-menu" class="lh-menu mt10 mr10">
                      <ul>
                        <!-- 文件目录 -->
                        <li class="lh-menu-stair" v-for="chapter in chapterVideoList" :key="chapter.id">
                          <a href="javascript: void(0)" :title="chapter.title" class="current-1">
                            <em class="lh-menu-i-1 icon18 mr10"></em>{{chapter.title}}
                          </a>

                          <ol class="lh-menu-ol" style="display: block;">
                            <li class="lh-menu-second ml30" v-for="video in chapter.children" :key="video.id">
                              <div @click="seeVideo(video.videoSourceId)" v-if="video.isFree==1" >
                                  <span class="fr">
                                     <i class="free-icon vam mr10" > 免费试听</i>
                                  </span>
                                <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em>{{video.title}}
                              </div>
                              <div @click="seeVideo(video.videoSourceId)" v-else-if="isBuy==true" >
                                  <span class="fr">
                                     <i class="free-icon vam mr10" > 立即播放</i>

                                  </span>
                                <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em>{{video.title}}
                              </div>
                              <div @click="createOrders()" v-else-if="courseWebVo.price==0" >
                                  <span class="fr">

                                     <i class="free-icon vam mr10" > 去报名</i>

                                  </span>
                                <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em>{{video.title}}
                              </div>
                              <div @click="createOrders()" v-else  >
                                  <span class="fr">

                                     <i class="free-icon vam mr10" > 去购买</i>

                                  </span>
                                <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em>{{video.title}}
                              </div>
                            </li>

                          </ol>

                        </li>
                      </ul>
                    </menu>
                  </div>
                </section>
              </div>
              <!-- /课程大纲 -->


            </div>

          </div>
        </aside>
        <div class="clear"></div>
      </div>
    </section>
    <!-- /课程详情 结束 -->


    <!--阿里云播放器-->
    <el-dialog
      class="video"
      @close="colseVideo()"
      :visible.sync="playShow"
    >

      <ali-player
        v-if="playAuth"
        :vid="vid"
        :playauth="playAuth"
        qualitySort="asc"
        format="m3u8"
        mediaType="video"
        :encryptType=1
        ref="player"
        :autoplay=false
        :isLive=false
        :rePlay=false
        :preload=true
        controlBarVisibility="hover"
        :useH5Prism=true
      >
      </ali-player>

    </el-dialog>
  </div>
</template>

<script>
import courseApi from '@/api/course'
import ordersApi from '@/api/orders'
import commentApi from '@/api/comment'
import vodApi from '@/api/vod'
import vueAliplayer from '@/components/AliPlayer/index.vue'

export default {
  async asyncData({ params,app,error }) {

    //专门为到达页面之前准备我们的数据

    try {
      const token = app.$cookies.get('front_token');
      //使用 Promise.all 来并行发起两个请求
      const [courseInfo, commentPage] = await Promise.all([
        courseApi.getCourseInfo(params.id, token == undefined ? '' : token),
        courseApi.getComment(params.id, 1, 4)
      ]);
      // 返回一个对象，Nuxt 会将这个对象合并到组件的 data 方法中
      return {
        courseId: params.id,
        courseWebVo: courseInfo.data.courseWebVo,
        chapterVideoList: courseInfo.data.chapterVideoList,
        isBuy: courseInfo.data.isBuy,
        data: commentPage.data,
        userinfo: app.$cookies.get('front_member')
      };
    } catch (e) {
      console.log(e.message)
      if (e.code == 30002) {
        //如果token过期了，直接把cookie里的值清空
        app.$cookies.remove('front_token');
      }
      error(e)
    }
  },
  components: { "ali-player": vueAliplayer },
   data() {
     return {
        data:"",
        page:1,
        limit:4,
        total:'',
        comment:{
          courseId:'',
          content: ''
        },
        playShow: false,
        vid: '',
        playAuth: '',
     }
   },


  methods:{
    delComment(id){
      commentApi.delComment(id).then(res =>{
        this.initComment()
        this.$message({
          message: '删除成功',
          type:'success'
        });
      })
    },
    initComment(){
      courseApi.getComment(this.courseId,this.page, this.limit).then(res => {
        this.data = res.data
      })
    },
    gotoPage(page){
      courseApi.getComment(this.courseId,page, this.limit).then(res => {
        this.data = res.data
      })
    },

    addComment(){
      this.comment.courseId=this.courseId

      if(this.comment.content.trim().length<2){
        this.$message({
          message: '评论内容至少2个字符',
          type: 'warning'
        });
        return false
      }
      commentApi.addComment(this.comment).then(res => {

          this.comment.content = ''
          this.initComment()

      })
    },
     colseVideo(){


       // //重新子组件初始化

       this.$refs.player.initAliplayer()

     },

     seeVideo(vid) {


       this.vid=''
       this.playAuth=''

       //根据vid去查凭证
       vodApi.getPlayAuth(vid).then(res => {

         this.vid = vid
         this.playAuth = res.data
         this.playShow = true

       })


     },

     //生成订单
     createOrders() {
       ordersApi.createOrders(this.courseId)
        .then(res => {
          //获取返回订单号
          //生成订单之后，跳转订单显示页面
          if(this.courseWebVo.price>0){
            this.$router.push({path:'/orders/'+res.data})
          }else{
            this.$message.success("已报名")
            this.courseWebVo.buyCount++
            this.isBuy=true
          }

        })
     }
   },

};
</script>
<style>
.video .el-dialog__header {
  padding: 0;
}

.video .el-dialog__body {
  padding: 0;
}


</style>
